﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.ModelBinding;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Ajax.Utilities;
using Microsoft.Practices.Unity;
using Triunfadores.BusinessEntities;
using Triunfadores.BusinessLogic.Service;

namespace Triunfadores.Web.Clientes
{
    public partial class RegistrarTipoCliente : System.Web.UI.Page
    {
        #region Declaracion de dependencias
        [Dependency]
        public ITipoClienteService TipoClienteService { get; set; }

        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            var opc = Request.QueryString["opc"];
            var idTipo = Request.QueryString["idTipo"];
           
            fvTipoCliente.DefaultMode = FormViewMode.Insert;

            if (opc != null && opc == "nuevo")
            {
                fvTipoCliente.DefaultMode = FormViewMode.Insert;
                upTiposCliente.Visible = false;
            }
            if (opc != null && opc == "editar")
            {
                fvTipoCliente.DefaultMode = FormViewMode.Edit;
                upTiposCliente.Visible = false;
            }
            //if (opc != null && idTipo != null && opc == "delete")
            //{
            //    var id = Int32.Parse(idTipo.ToString());
            //    DeleteTipoCliente(id);
            //}
        }

        #region Consultas GET
        public IEnumerable<TipoCliente> GetTiposCliente()
        {
            return TipoClienteService.GetAllTiposCliente();
        }

        //obtenemos el tipo de cliente por el Id
        public TipoCliente GetTipoCliente([QueryString("idTipo")] Int32? id)
        {
            if (id.HasValue)
            {
                return TipoClienteService.GetTipoClienteById(id.Value);
            }
            return null;
        }

        #endregion

        public void InsertTipoCliente(TipoCliente tipoCliente)
        {
            //if (ModelState.IsValid)
            //{
            TipoClienteService.AddTipoCliente(tipoCliente);
            
            Response.Redirect("TipoCliente.aspx");
            //}
        }

        public void UpdateTipoCliente(TipoCliente tipoCliente)
        {
            if (ModelState.IsValid)
            {
                TipoClienteService.UpdateTipoCliente(tipoCliente);

                Response.Redirect("TipoCliente.aspx");
            }
        }

        public void DeleteTipoCliente(Int32 id)
        {
            TipoClienteService.DeleteTipoCliente(id);
            Response.Redirect("TipoCliente.aspx");
        }


    }
}